Many wireless communication systems employ an interleaving scheme to reduce errors in transmission. Interleaving, for example, may help reduce the number of undetected error bursts, especially in channels with memory (i.e., fading channels). Interleaving is generally performed after channel encoding and permutes bits in a regular or predetermined fashion prior to modulation and transmission. Upon reception and after demodulation, a deinterleaving process is performed to restore the original bit sequence. Some orthogonal frequency division multiplexed (OFDM) systems use coding and frequency interleaving to help overcome problems associated with transmitting data over frequency-selective (i.e., fading) channels. Interleaving may exploit this frequency diversity by spreading any locally deep fades within the channel across the transmission bandwidth. Block interleaving is one form of interleaving in which a block of bits is inputted to a matrix in a one fashion (e.g., row-by-row) and outputted from the matrix in another fashion (e.g., column-by-column). Block interleaving uses a fixed number of bits to fill the matrix. It is difficult to perform block interleaving in systems where the number of coded bits is not fixed.